package classificados.mbeans;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import classificados.negocio.Classificados;
import classificados.negocio.Usuario;


@ManagedBean(name="usuarioMB", eager=true)
@RequestScoped
public class UsuarioMB {
	private String nome;
	private String login;
	private String senha;
	private String mensagem;
	
	public UsuarioMB() {
		super();
		this.mensagem = "";
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}
	
	public String getMensagem() {
		return mensagem;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}
	
	public boolean isTemMensagem() {
		return !this.mensagem.isEmpty();
	}

	public String cadastraUsuario() {
		if (!this.nome.isEmpty() && !this.login.isEmpty() && !this.senha.isEmpty()) {
			Usuario novo = new Usuario(nome, login, senha);
			Classificados negocio = Classificados.getInstancia();
			if (!negocio.existeLogin(login)) {
				negocio.adicionaUsuario(novo);
				this.setMensagem("Usuario cadastrado com sucesso!");
				return "index.jsp";
			} else {
				this.setMensagem("Login informado já existe, escolha outro!");
			}
		} else {
			this.setMensagem("É necessário informar todos os parâmetros solicitados!");
		}
		return "cadastroUsuario.jsp";
	}
	
	public String autenticar() {
		if (!this.login.isEmpty() && !this.senha.isEmpty()) {
			Classificados negocio = Classificados.getInstancia();
			Usuario autenticado = negocio.autenticar(this.login, this.senha); 
			if (autenticado != null) {
				FacesContext context = FacesContext.getCurrentInstance();
				SessaoMB sessaoMB = (SessaoMB) context.getELContext().getELResolver().getValue(context.getELContext(), null, "sessaoMB");
				sessaoMB.setUsuario(autenticado);
				return "index.jsp";
			} else {
				this.setMensagem("Login e senha não conferem!");
			}
		} else {
			this.setMensagem("É necessário informar login e senha!");
		}
		return "login.jsp";
	}
}
